// 浏览器前进后退功能

// 1.面向对象模块化 思想
// 一个文件写一个类
// 2. 引入其他模块
const { StackBasedLinkedList } = require('./StackBaseOnLinkedList');
// console.log(StackBaseOnLinkedList);
class Browser {
    constructor() {
        this.normalStack = new StackBasedLinkedList();
        this.backStack = new StackBasedLinkedList();
    }
    pushNormal(name) {
        // 加 新页面 到x栈顶 把y清空
        this.normalStack.push(name);// 浏览网络入栈
        this.backStack.clear();//x:abcd的d->e，y历史栈不要了
        this.displayAllStack();
    }
    back() {
        const value = this.normalStack.pop();
        if (value !== -1) {
            this.backStack.push(value);
            this.displayAllStack();
        }
        else {
            console.log('无法后退');
        }
    }
    front() {
        const value = this.backStack.pop();
        if (value !== -1) {
            this.normalStack.push(value);
            this.displayAllStack();
        }
        else {
            console.log('无法前进');
        }
    }
    displayAllStack() {
        console.log('---x---');
        this.normalStack.display();
        console.log('---y---');
        this.backStack.display();
    }
}
let browser = new Browser();
browser.pushNormal('google');
browser.pushNormal('baidu');
browser.pushNormal('github');
browser.back();
browser.back();
browser.pushNormal('tmall');